package com.qf.day06;

import java.util.Arrays;
import java.util.Scanner;

public class Register {
    private static User[]  arrExpansion(User[] array) {
        //用户数小于50 二倍扩容
        if(array.length<=50){
           User[] newArray =   Arrays.copyOf(array,array.length*2);
           return newArray;
        }else { //用户数大于50 扩容加10
            return   Arrays.copyOf(array,array.length+10);
        }
    }
    private Boolean userCheck(User[] users , String userName ,int index) {
        if(index == 0){
            return true;
        }
        for (int i = 0; i < index; i++) {
            if(userName.equals(users[i].getUserName())){
                return false;
            }
        }
        return true;
    }

    /**
     *  用户注册
     * @param userArray 用户数组存用户信息
     * @return 返回存储的下标
     */
    public User[] userReg(User[] userArray) {
        Scanner scanner = new Scanner(System.in);
        int count = 0;
        for (User user : userArray) {
            if(user!=null){
                count++;
            }
        }
        //注册功能用户输入 名和密码
        System.out.println("请输入注册用户名");
        String userName = scanner.next();
        System.out.println("请输入注册密码");
        String password = scanner.next();

        //用户注册判断 同名不能注册
        if(userCheck(userArray , userName ,count)){
            User user = new User(userName , password);

            //当用户数量大于数组长度扩容
            if(count == userArray.length-1){
                userArray =  arrExpansion(userArray);
                System.out.println(userArray.length);
            }

            //将user放入数组中
            userArray[count++] = user;



            System.out.println("注册成功");
            return userArray;
        }
        System.out.println("注册失败 用户名相同");
        return userArray;
    }


}
